﻿Imports Negocio
Imports Utilitario
Public Class frmOrdenCompra

    Dim util As New Utiles
    Dim servicio1 As New OrdenesCompraNegocio

    Dim codOrden As String = ""
    Dim codProveedor As String = ""
    Dim nomProveedor As String = ""
    Dim fechaRegistro As String = ""
    Dim fechaAlmacen As String = ""
    Dim flagExistencia As String = ""
    Dim nroParte As String = ""

    Sub New(codOrden As String, codProveedor As String, nomProveedor As String, fecRegistro As String, fecAlmacen As String, flag As String)

        ' Llamada necesaria para el diseñador.
        InitializeComponent()

        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
        Me.codOrden = codOrden
        Me.codProveedor = codProveedor
        Me.nomProveedor = nomProveedor
        Me.fechaRegistro = fecRegistro
        Me.fechaAlmacen = fecAlmacen
        Me.flagExistencia = flag
    End Sub

    Sub listarDetalle(codOrdenCompra As String, flag As String)
        Cursor.Current = Cursors.WaitCursor
        Dim ds As New DataSet
        If flag = "0" Then
            ds = servicio1.obtenerOrdenesCompraDetalleXOrdenAntes(codOrdenCompra)
            dgvDetalle.Rows.Clear()
            For i = 0 To ds.Tables(0).Rows.Count - 1
                dgvDetalle.Rows.Add(True, ds.Tables(0).Rows(i)("item").ToString.Trim,
                                    ds.Tables(0).Rows(i)("descrip").ToString.Trim, ds.Tables(0).Rows(i)("um").ToString.Trim,
                                    ds.Tables(0).Rows(i)("qenv").ToString.Trim, "0,00", "0 %", "", "", "")
            Next
        ElseIf flag = "1" Then
            ds = servicio1.obtenerOrdenesCompraDetalleXOrdenDespues(codOrdenCompra)
            dgvDetalle.Rows.Clear()
            For i = 0 To ds.Tables(0).Rows.Count - 1
                dgvDetalle.Rows.Add(True, ds.Tables(0).Rows(i)("ART_Codigo").ToString.Trim,
                                    ds.Tables(0).Rows(i)("ART_Descripcion").ToString.Trim, ds.Tables(0).Rows(i)("UNM_Abreviatura").ToString.Trim,
                                    ds.Tables(0).Rows(i)("Solicitado").ToString.Trim, ds.Tables(0).Rows(i)("Atendido").ToString.Trim,
                                    ds.Tables(0).Rows(i)("Avance").ToString.Trim & " %", ds.Tables(0).Rows(i)("DAD_Codigo").ToString.Trim,
                                    ds.Tables(0).Rows(i)("DADP_Codigo").ToString.Trim, ds.Tables(0).Rows(i)("DADPU_Codigo").ToString.Trim)
            Next
        End If

        lblCantItems.Text = "Cant. Items : " & ds.Tables(0).Rows.Count

        If ds.Tables(0).Rows.Count > 0 Then
            dgvDetalle.Rows(0).Selected = False
        End If
        Cursor.Current = Cursors.Default
    End Sub

    Private Sub frmOrdenCompra_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        DialogResult = Windows.Forms.DialogResult.OK
    End Sub

    Private Sub frmOrdenCompra_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        txtOrden.Text = codOrden
        txtProveedor.Text = codProveedor
        lblNomProveedor.Text = nomProveedor
        txtFechaRegistro.Text = fechaRegistro
        txtFechaAlmacen.Text = fechaAlmacen

        If flagExistencia = "1" Then
            listarDetalle(codOrden, flagExistencia)
            nroParte = servicio1.obtenerNroParteIngreso(CIA, SUC_Codigo, "OC", codOrden)
            btnIngreso.Enabled = False
        Else
            listarDetalle(codOrden, flagExistencia)
            btnIngreso.Enabled = True
        End If
    End Sub

    Private Sub btnIngreso_Click(sender As System.Object, e As System.EventArgs) Handles btnIngreso.Click
        If MsgBox("¿Esta seguro que desea iniciar la Orden de Compra?", MsgBoxStyle.Question + MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2, "Mensajes al Usuario") = MsgBoxResult.Yes Then
            Cursor.Current = Cursors.WaitCursor
            If servicio1.registrarOrdenesCompra(codOrden) = True Then
                nroParte = servicio1.obtenerNroParteIngreso(CIA, SUC_Codigo, "OC", codOrden)
                util.mensaje("Se registraron las ordenes de compra exitosamente.")
                flagExistencia = "1"
                listarDetalle(codOrden, flagExistencia)
                btnIngreso.Enabled = False
                Cursor.Current = Cursors.Default
            Else
                Cursor.Current = Cursors.Default
                util.mensaje("Ocurrió un error. Intentelo nuevamente.")
            End If
        End If
    End Sub

    Private Sub btnRefrescar_Click(sender As System.Object, e As System.EventArgs) Handles btnRefrescar.Click
            listarDetalle(codOrden, flagExistencia)
    End Sub

    Private Sub btnFinalizar_Click(sender As System.Object, e As System.EventArgs) Handles btnFinalizar.Click
        If MsgBox("¿Esta seguro que desea finalizar la Orden de Compra?", MsgBoxStyle.Question + MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2, "Mensajes al Usuario") = MsgBoxResult.Yes Then
            Cursor.Current = Cursors.WaitCursor
            If servicio1.actualizarPIngresoFlagAlmacen(nroParte, "S", codOrden) = True Then
                For Each fila As DataGridViewRow In dgvDetalle.Rows
                    servicio1.actualizarCantidadRealItem(codOrden, CInt(fila.Cells("Column6").Value), fila.Cells("Column2").Value)
                    servicio1.actualizarCantidadManoOrden(CInt(fila.Cells("Column6").Value), fila.Cells("Column2").Value)
                    servicio1.actualizarCantidadesParteIngreso(CIA, SUC_Codigo, "PI", nroParte, fila.Cells("Column8").Value, fila.Cells("Column9").Value, fila.Cells("Column10").Value, fila.Cells("Column2").Value, CInt(fila.Cells("Column6").Value))
                Next
                util.mensaje("La orden de compra finalizó correctamente.")
                Cursor.Current = Cursors.Default
                DialogResult = Windows.Forms.DialogResult.OK
            Else
                Cursor.Current = Cursors.Default
                util.mensaje("Ocurrió un error, Intentelo de nuevo.")
            End If
        End If
    End Sub

End Class